package com.accenture.agreco.beans.impl;

import com.accenture.agreco.beans.Libro;

import java.util.logging.Logger;

/**
 * User: a.greco
 * Date: 11/10/12
 * Time: 17.21
 */
public class LibroImpl implements Libro{

    private String uniqueCopyId;
    private String titolo;
    private String autore;
    private String editore;
    private String edizione;
    private double prezzo;

    public LibroImpl(String titolo){
        this.titolo = titolo;
    }

    public String getUniqueCopyId() {
        return uniqueCopyId;
    }

    private void setUniqueCopyId() {
        if(this.uniqueCopyId == null) { //can be set only once
            this.uniqueCopyId = getCodePrefix()+Math.abs(this.toString().hashCode());
        } else {
            System.out.println("WARN: Trying to set a UniqueCopyId which is set already. "+this.uniqueCopyId + " is being maintained");
        }
    }

    private String getCodePrefix() {
        if(titolo == null || titolo.length() == 0) {
            return "UCI";
        }
        return titolo.length() <= 3 ? titolo.toUpperCase() : titolo.substring(0,3).toUpperCase();
    }

    public String getTitolo() {
        return titolo;
    }

    public void setTitolo(String titolo) {
        this.titolo = titolo;
    }

    public String getAutore() {
        return autore;
    }

    public void setAutore(String autore) {
        this.autore = autore;
    }

    public String getEditore() {
        return editore;
    }

    public void setEditore(String editore) {
        this.editore = editore;
    }

    public String getEdizione() {
        return edizione;
    }

    public void setEdizione(String edizione) {
        this.edizione = edizione;
    }

    public double getPrezzo() {
        return prezzo;
    }

    public void setPrezzo(double prezzo) {
        this.prezzo = prezzo;
    }

}
